/**
 * 非法多媒体, 非法图片
 * @author rxliuli
 */
class MoIllegalMedia {
    /**
     * 构造函数
     * @param {Object} [option] 可选参数
     * @param {Number} [option.id] 主键，自增
     * @param {Number} [option.houseId] 所在机房， 引base_houseInfo 表主键
     * @param {String} [option.domain] 访问域名
     * @param {Number} [option.port] 端口
     * @param {String} [option.mediaInfo] 多媒体信息，存url
     * @param {Number} [option.accessCount] 访问次数
     * @param {Number} [option.mediaSize] 媒体大小，单位kb
     * @param {Number} [option.dangerFactor] 危险系数
     * @param {String} [option.service] 服务内容，默认填：其他
     * @param {String} [option.dealStatus] 处置状态, 1:未处置, 2: 域名放行, 3: 域名屏蔽, 4: 网址屏蔽
     * @param {Date} [option.lastFoundTime] 最近发现时间
     * @param {String} [option.appIp] 应用ip, 域名对应的ip
     * @param {String} [option.urlSig] 网址签名，采用crc32算法值
     * @param {Array.<Date>} [option.lastFoundTimeRange] 最近发现时间区间
     * @param {Date} [option.lastFoundTimeStart] 最近发现时间，开始
     * @param {Date} [option.lastFoundTimeEnd] 最近发现时间，结束
     * @param {Number} [option.dangerFactorStart] 危险系数，开始
     * @param {Number} [option.dangerFactorEnd] 危险系数，结束
     * @param {Number} [option.domainAction] 访问域名，是否模糊
     * @param {Number} [option.illegalType] 非法类型
     * @param {Number} [option.protocol] 协议类型
     * @param {Number} [option.mediaInfoAction] 访问网址，是否模糊
     * @param {...Object} [option.args] 其他参数
     */
    constructor({
                    id,
                    houseId,
                    domain,
                    port,
                    mediaInfo,
                    accessCount,
                    mediaSize,
                    dangerFactor,
                    service,
                    dealStatus,
                    lastFoundTime,
                    appIp,
                    urlSig,
                    lastFoundTimeRange,
                    lastFoundTimeStart,
                    lastFoundTimeEnd,
                    dangerFactorStart,
                    dangerFactorEnd,
                    domainAction,
                    illegalType,
                    protocol,
                    mediaInfoAction,
                    dealTimeStart,
                    dealTimeEnd,
                    ...args
                } = {}) {
        this.id = id
        this.houseId = houseId
        this.domain = domain
        this.port = port
        this.mediaInfo = mediaInfo
        this.accessCount = accessCount
        this.mediaSize = mediaSize
        this.dangerFactor = dangerFactor
        this.service = service
        this.dealStatus = dealStatus
        this.lastFoundTime = lastFoundTime
        this.appIp = appIp
        this.urlSig = urlSig
        this.lastFoundTimeRange = lastFoundTimeRange
        this.lastFoundTimeStart = lastFoundTimeStart
        this.lastFoundTimeEnd = lastFoundTimeEnd
        this.dangerFactorStart = dangerFactorStart
        this.dangerFactorEnd = dangerFactorEnd
        this.domainAction = domainAction
        this.illegalType = illegalType
        this.protocol = protocol
        this.mediaInfoAction = mediaInfoAction
        this.dealTimeStart = dealTimeStart
        this.dealTimeEnd = dealTimeEnd
        Object.assign(this, args)
    }
}